package fachada;

import java.util.ArrayList;

import classesDAO.ClienteDAO;
import classesDAO.UsuarioDAO;

import entities.Cliente;
import entities.Cobranca;
import entities.Usuario;
import factory.FactoryDAO;
import interfaceFachada.IFachada;

public class Fachada implements IFachada {

	private static Fachada instance = null;
	
	private static ClienteDAO clientedao = null;
	
	private static UsuarioDAO usuariodao = null;
	
	public static Fachada getFachada()
	{	
		if(!(instance != null))
		{
			instance = new Fachada();
		}
		
		
		
		return instance;
	}
	private Fachada()
	{
		clientedao = FactoryDAO.getClienteDAO();
		usuariodao = FactoryDAO.getUsuarioDAO();
	}

	
	@Override
	public boolean efetuarLogin(Usuario usuario)
	{
		usuariodao.buscarUsuario(usuario);
		return false;
	}
	
	@Override
	public boolean cadastrarCliente(Cliente cliente) {
		// TODO Auto-generated method stub
		
		try {
			clientedao.pesquisarCNPJ(cliente);
			if(!(cliente == null))
			{
				clientedao.cadastrar(cliente);	
			}
		} catch (Exception e) {
			// TODO: handle exception
			return false;
		}
			return true;
		
	}

	@Override
	public void buscarCliente(Cliente cliente) {
		// TODO Auto-generated method stub
		
		try {
			clientedao.pesquisarCNPJ(cliente);
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}

	@Override
	public boolean alterarCliente(Cliente cliente) {
		// TODO Auto-generated method stub
		
		try {
			clientedao.alterar(cliente);
		} catch (Exception e) {
			// TODO: handle exception
			return false;
		}
		return true;
	}

	@Override
	public boolean removerCliente(Cliente cliente) {
		// TODO Auto-generated method stub
		
		try {
			clientedao.remover(cliente);
		} catch (Exception e) {
			// TODO: handle exception
			return false;
		}
		return true;
	}

	@Override
	public ArrayList<Cliente> buscarTodosClientes() {
		// TODO Auto-generated method stub
		
		try {
			ArrayList<Cliente> todos = clientedao.pesquisarTodos();
			return todos;
		} catch (Exception e) {
			// TODO: handle exception
			return null;
		}
		
	}

	@Override
	public boolean cadastrarCobranca(Cobranca cobranca) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public void buscarCobranca(Cobranca cobranca) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public boolean alterar(Cobranca cobranca) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean remover(Cobranca cobranca) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public ArrayList<Cobranca> buscarTodos() {
		// TODO Auto-generated method stub
		return null;
	}

}
